Linux下比较两个时间的时间差

        有一个特殊的需求,知道两个文件的最后修改时间,现在要比较这两个时间的时间差是不是在一个阀值内?这就需要求出连个时间的时间差。

        在Linux下,有一个方法可以将基础时间转为时间戳

        例如,2017-07-13 10:01:05 这个时间的时间戳为

1
2
[root@localhost ~]# date +%s -d '2017-07-13 10:01:05'
1499911265

        根据这个时间戳,就可以求出两个时间的时间差了。

        比如,求2017-07-13 10:01:05 和 2017-07-13 11:01:05两个时间的时间差

1
2
3
4
5
[root@localhost ~]# a=`date +%s -d '2017-07-13 10:01:05'`
[root@localhost ~]# b=`date +%s -d '2017-07-13 11:01:05'`
[root@localhost ~]# time=$[$b-$a]
[root@localhost ~]# echo $time
3600

        结果就是3600,可见它的单位是秒,如果求分钟,直接除以60即可。